jQuery 表单校验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery.validate示例</title>
<!--
<script src="./jquery-3.7.1.js"></script>
<script src="./jquery.validate-1.17.0.js"></script>
-->
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.7.1.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.17.0/jquery.validate.min.js"></script>
<script>
$(document).ready(function() {
// 自定义“大于”验证函数
$.validator.addMethod("gt", function(value, element, param) {
return this.optional(element) || parseFloat(value) > parseFloat(param);
}, "值必须大于 {0}");
// 注册手机号验证规则 (命名为 mobile)
$.validator.addMethod("mobile", function(value, element) {
return this.optional(element) || /^1[3-9]\d{9}$/.test(value);
}, "请输入正确的手机号码!");
// 注册固话验证规则 (命名为 phone)
$.validator.addMethod("phone", function(value, element) {
console.log('phone = ' + value);
// debugger;
if (!(7 === value.length || 8 === value.length)) return false;
return this.optional(element) || /^(\d{3,4}-?)?\d{7,9}$/.test(value);
}, "请输入正确的固定电话!");
$("#myForm").validate({
rules: {
username: {
required: true
, minlength: 3
, maxlength: 18
}
, email: {
required: true
, email: true
}
, mobile: {
required: true
, mobile: true
}
, telephone: {
required: true
, phone: true
}
, age: {
required: true,
digits: true // 只能是正整数或 0
, min : 10
}
, score: {
required: true,
number: true // 只能是数字🔢,可以是小数,可以是整数、可以是 0。
, min : 0.5 // 最低是 0.5 分。
}
, weight: {
required: true,
digits: true // 只能是正整数。
, min : function (element) {
console.log('体重:' + element.value);
//debugger;
return 0 == element.value;
}
}
, height: {
required: true,
digits: true // 只能是正整数。
, min : 50
}
, width: {
required: true,
digits: true // 只能是正整数。
, max : function (element) { return parseInt($('#height').val()) }
, min : 10
}
},
messages: {
username: {
required: "请输入用户名!"
, minlength: "用户名至少需要 3 个字符!"
, maxlength: "用户名不可🙅♂️超过 8 个字符!"
}
, email: {
required: "请输入电子邮件📮!"
, email: "请输入有效的电子邮件📮地址!"
}
, mobile: {
required: "请输入手机📱号!"
, mobile: "请输入有效的手机📱号!"
}
, telephone: {
required: "请输入固话☎️号码!"
, phone: "请输入有效的固话☎️号码!"
}
, age: {
required: "请输入年龄!",
digits: "年龄必须是正整数!"
, min : '年龄不🙅♂️可低于 10 岁!'
}
, score: {
required: "请输入分数!",
number: "分数必须是数字!"
, min : '分数不可🙅♂️低于 0.5!'
}
, weight: {
required: "请输入体重!",
digits: "体重只能是正整数!"
, min : '体重不能为 0!'
}
, height: {
required: "请输入身高!",
digits: "身高只能是正整数!"
, min : '身高不能低于 50 厘米!'
}
, width: {
required: "请输入腰围!",
digits: "腰围只能是正整数!"
, max : '腰围不可🙅♀️超过身高!'
, min : '腰围不可🙅♀️小于 10 厘米!'
}
}
, submitHandler: function(form) {
// 表单提交的代码,例如使用 AJAX 提交表单数据等。
form.submit(); // 或者使用 $.ajax() 等方式提交数据。
}
});
});
const validateForm = function() {
$("#myForm").validate();
if ($("#myForm").valid()) { // 手动触发验证
// 验证通过后的逻辑
$("#myForm").submit();
}
}
</script>
</head>
<body>
<form id="myForm">
<label for="username">用户名:</label>
<input type="text" name="username" id="username"><br /><br />
<label for="email">电子邮件📮:</label>
<input type="email" name="email" id="email"><br /><br />
<label for="mobile">手机📱号:</label>
<input type="mobile" id="mobile" name="mobile"><br /><br />
<label for="telephone">固话☎️号码:</label>
<input type="phone" id="telephone" name="telephone"><br /><br />
年龄:
<input type="text" name="age" id="age" /><br /><br />
分数:
<input type="text" name="score" id="score" /><br /><br />
体重:<input type="text" name="weight" id="weight" /><br /><br />
高度:<input type="text" name="height" id="height" /><br /><br />
宽度:<input type="text" name="width" id="width" /><br /><br />
<input type="submit" value="提交">
<input type="button" value="验证" onclick="validateForm()">
</form>
</body>
</html>
